'\" t
.TH "UDEVADM" "8" "" "systemd 249" "udevadm"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
udevadm \- udev management tool
.SH "SYNOPSIS"
.HP \w'\fBudevadm\fR\ 'u
\fBudevadm\fR [\fB\-\-debug\fR] [\fB\-\-version\fR] [\fB\-\-help\fR]
.HP \w'\fBudevadm\ info\ \fR\fB[options]\fR\fB\ \fR\fB[devpath]\fR\ 'u
\fBudevadm info \fR\fB[options]\fR\fB \fR\fB[devpath]\fR
.HP \w'\fBudevadm\ trigger\ \fR\fB[options]\fR\fB\ \fR\fB[devpath]\fR\ 'u
\fBudevadm trigger \fR\fB[options]\fR\fB \fR\fB[devpath]\fR
.HP \w'\fBudevadm\ settle\ \fR\fB[options]\fR\ 'u
\fBudevadm settle \fR\fB[options]\fR
.HP \w'\fBudevadm\ control\ \fR\fB\fIoption\fR\fR\ 'u
\fBudevadm control \fR\fB\fIoption\fR\fR
.HP \w'\fBudevadm\ monitor\ \fR\fB[options]\fR\ 'u
\fBudevadm monitor \fR\fB[options]\fR
.HP \w'\fBudevadm\ test\ \fR\fB[options]\fR\fB\ \fR\fB\fIdevpath\fR\fR\ 'u
\fBudevadm test \fR\fB[options]\fR\fB \fR\fB\fIdevpath\fR\fR
.HP \w'\fBudevadm\ test\-builtin\ \fR\fB[options]\fR\fB\ \fR\fB\fIcommand\fR\fR\fB\ \fR\fB\fIdevpath\fR\fR\ 'u
\fBudevadm test\-builtin \fR\fB[options]\fR\fB \fR\fB\fIcommand\fR\fR\fB \fR\fB\fIdevpath\fR\fR
.SH "DESCRIPTION"
.PP
\fBudevadm\fR
expects a command and command specific options\&. It controls the runtime behavior of
\fBsystemd\-udevd\fR, requests kernel events, manages the event queue, and provides simple debugging mechanisms\&.
.SH "OPTIONS"
.PP
\fB\-d\fR, \fB\-\-debug\fR
.RS 4
Print debug messages to standard error\&. This option is implied in
\fBudevadm test\fR
and
\fBudevadm test\-builtin\fR
commands\&.
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
Print a short help text and exit\&.
.RE
.SS "udevadm info [\fIoptions\fR] [\fIdevpath\fR|\fIfile\fR|\fIunit\fR...]"
.PP
Query the udev database for device information\&.
.PP
Positional arguments should be used to specify one or more devices\&. Each one may be a device name (in which case it must start with
/dev/), a sys path (in which case it must start with
/sys/), or a systemd device unit name (in which case it must end with
"\&.device", see
\fBsystemd.device\fR(5))\&.
.PP
\fB\-q\fR, \fB\-\-query=\fR\fB\fITYPE\fR\fR
.RS 4
Query the database for the specified type of device data\&. Valid
\fITYPE\fRs are:
\fBname\fR,
\fBsymlink\fR,
\fBpath\fR,
\fBproperty\fR,
\fBall\fR\&.
.RE
.PP
\fB\-p\fR, \fB\-\-path=\fR\fB\fIDEVPATH\fR\fR
.RS 4
The
/sys/
path of the device to query, e\&.g\&.
[/sys/]/class/block/sda\&. This option is an alternative to the positional argument with a
/sys/
prefix\&.
\fBudevadm info \-\-path=/class/block/sda\fR
is equivalent to
\fBudevadm info /sys/class/block/sda\fR\&.
.RE
.PP
\fB\-n\fR, \fB\-\-name=\fR\fB\fIFILE\fR\fR
.RS 4
The name of the device node or a symlink to query, e\&.g\&.
[/dev/]/sda\&. This option is an alternative to the positional argument with a
/dev/
prefix\&.
\fBudevadm info \-\-name=sda\fR
is equivalent to
\fBudevadm info /dev/sda\fR\&.
.RE
.PP
\fB\-r\fR, \fB\-\-root\fR
.RS 4
Print absolute paths in
\fBname\fR
or
\fBsymlink\fR
query\&.
.RE
.PP
\fB\-a\fR, \fB\-\-attribute\-walk\fR
.RS 4
Print all sysfs properties of the specified device that can be used in udev rules to match the specified device\&. It prints all devices along the chain, up to the root of sysfs that can be used in udev rules\&.
.RE
.PP
\fB\-x\fR, \fB\-\-export\fR
.RS 4
Print output as key/value pairs\&. Values are enclosed in single quotes\&. This takes effects only when
\fB\-\-query=property\fR
or
\fB\-\-device\-id\-of\-file=\fR\fB\fIFILE\fR\fR
is specified\&.
.RE
.PP
\fB\-P\fR, \fB\-\-export\-prefix=\fR\fB\fINAME\fR\fR
.RS 4
Add a prefix to the key name of exported values\&. This implies
\fB\-\-export\fR\&.
.RE
.PP
\fB\-d\fR, \fB\-\-device\-id\-of\-file=\fR\fB\fIFILE\fR\fR
.RS 4
Print major/minor numbers of the underlying device, where the file lives on\&. If this is specified, all positional arguments are ignored\&.
.RE
.PP
\fB\-e\fR, \fB\-\-export\-db\fR
.RS 4
Export the content of the udev database\&.
.RE
.PP
\fB\-c\fR, \fB\-\-cleanup\-db\fR
.RS 4
Cleanup the udev database\&.
.RE
.PP
\fB\-w\fR\fB[SECONDS]\fR, \fB\-\-wait\-for\-initialization\fR\fB[=SECONDS]\fR
.RS 4
Wait for device to be initialized\&. If argument
\fISECONDS\fR
is not specified, the default is to wait forever\&.
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
Print a short help text and exit\&.
.RE
.PP
The generated output shows the current device database entry in a terse format\&. Each line shown is prefixed with one of the following characters:
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.B Table\ \&1.\ \&udevadm info output prefixes
.TS
allbox tab(:);
lB lB.
T{
Prefix
T}:T{
Meaning
T}
.T&
l l
l l
l l
l l
l l.
T{
"P:"
T}:T{
Device path in /sys/
T}
T{
"N:"
T}:T{
Kernel device node name
T}
T{
"L:"
T}:T{
Device node symlink priority
T}
T{
"S:"
T}:T{
Device node symlink
T}
T{
"E:"
T}:T{
Device property
T}
.TE
.sp 1
.SS "udevadm trigger [\fIoptions\fR] [\fIdevpath\fR|\fIfile\fR|\fIunit\fR]"
.PP
Request device events from the kernel\&. Primarily used to replay events at system coldplug time\&.
.PP
Takes device specifications as positional arguments\&. See the description of
\fBinfo\fR
above\&.
.PP
\fB\-v\fR, \fB\-\-verbose\fR
.RS 4
Print the list of devices which will be triggered\&.
.RE
.PP
\fB\-n\fR, \fB\-\-dry\-run\fR
.RS 4
Do not actually trigger the event\&.
.RE
.PP
\fB\-q\fR, \fB\-\-quiet\fR
.RS 4
Suppress error logging in triggering events\&.
.RE
.PP
\fB\-t\fR, \fB\-\-type=\fR\fB\fITYPE\fR\fR
.RS 4
Trigger a specific type of devices\&. Valid types are:
\fBdevices\fR,
\fBsubsystems\fR\&. The default value is
\fBdevices\fR\&.
.RE
.PP
\fB\-c\fR, \fB\-\-action=\fR\fB\fIACTION\fR\fR
.RS 4
Type of event to be triggered\&. Possible actions are
"add",
"remove",
"change",
"move",
"online",
"offline",
"bind", and
"unbind"\&. Also, the special value
"help"
can be used to list the possible actions\&. The default value is
"change"\&.
.RE
.PP
\fB\-s\fR, \fB\-\-subsystem\-match=\fR\fB\fISUBSYSTEM\fR\fR
.RS 4
Trigger events for devices which belong to a matching subsystem\&. This option supports shell style pattern matching\&. When this option is specified more than once, then each matching result is ORed, that is, all the devices in each subsystem are triggered\&.
.RE
.PP
\fB\-S\fR, \fB\-\-subsystem\-nomatch=\fR\fB\fISUBSYSTEM\fR\fR
.RS 4
Do not trigger events for devices which belong to a matching subsystem\&. This option supports shell style pattern matching\&. When this option is specified more than once, then each matching result is ANDed, that is, devices which do not match all specified subsystems are triggered\&.
.RE
.PP
\fB\-a\fR, \fB\-\-attr\-match=\fR\fB\fIATTRIBUTE\fR\fR\fB=\fR\fB\fIVALUE\fR\fR
.RS 4
Trigger events for devices with a matching sysfs attribute\&. If a value is specified along with the attribute name, the content of the attribute is matched against the given value using shell style pattern matching\&. If no value is specified, the existence of the sysfs attribute is checked\&. When this option is specified multiple times, then each matching result is ANDed, that is, only devices which have all specified attributes are triggered\&.
.RE
.PP
\fB\-A\fR, \fB\-\-attr\-nomatch=\fR\fB\fIATTRIBUTE\fR\fR\fB=\fR\fB\fIVALUE\fR\fR
.RS 4
Do not trigger events for devices with a matching sysfs attribute\&. If a value is specified along with the attribute name, the content of the attribute is matched against the given value using shell style pattern matching\&. If no value is specified, the existence of the sysfs attribute is checked\&. When this option is specified multiple times, then each matching result is ANDed, that is, only devices which have none of the specified attributes are triggered\&.
.RE
.PP
\fB\-p\fR, \fB\-\-property\-match=\fR\fB\fIPROPERTY\fR\fR\fB=\fR\fB\fIVALUE\fR\fR
.RS 4
Trigger events for devices with a matching property value\&. This option supports shell style pattern matching\&. When this option is specified more than once, then each matching result is ORed, that is, devices which have one of the specified properties are triggered\&.
.RE
.PP
\fB\-g\fR, \fB\-\-tag\-match=\fR\fB\fITAG\fR\fR
.RS 4
Trigger events for devices with a matching tag\&. When this option is specified multiple times, then each matching result is ANDed, that is, devices which have all specified tags are triggered\&.
.RE
.PP
\fB\-y\fR, \fB\-\-sysname\-match=\fR\fB\fINAME\fR\fR
.RS 4
Trigger events for devices for which the last component (i\&.e\&. the filename) of the
/sys/
path matches the specified
\fIPATH\fR\&. This option supports shell style pattern matching\&. When this option is specified more than once, then each matching result is ORed, that is, all devices which have any of the specified
\fINAME\fR
are triggered\&.
.RE
.PP
\fB\-\-name\-match=\fR\fB\fINAME\fR\fR
.RS 4
Trigger events for devices with a matching device path\&. When this option is specified more than once, then each matching result is ORed, that is, all specified devices are triggered\&.
.RE
.PP
\fB\-b\fR, \fB\-\-parent\-match=\fR\fB\fISYSPATH\fR\fR
.RS 4
Trigger events for all children of a given device\&. When this option is specified more than once, then each matching result is ORed, that is, all children of each specified device are triggered\&.
.RE
.PP
\fB\-w\fR, \fB\-\-settle\fR
.RS 4
Apart from triggering events, also waits for those events to finish\&. Note that this is different from calling
\fBudevadm settle\fR\&.
\fBudevadm settle\fR
waits for all events to finish\&. This option only waits for events triggered by the same command to finish\&.
.RE
.PP
\fB\-\-uuid\fR
.RS 4
Trigger the synthetic device events, and associate a randomized UUID with each\&. These UUIDs are printed to standard output, one line for each event\&. These UUIDs are included in the uevent environment block (in the
"SYNTH_UUID="
property) and may be used to track delivery of the generated events\&.
.RE
.PP
\fB\-\-wait\-daemon[=\fR\fB\fISECONDS\fR\fR\fB]\fR
.RS 4
Before triggering uevents, wait for systemd\-udevd daemon to be initialized\&. Optionally takes timeout value\&. Default timeout is 5 seconds\&. This is equivalent to invoke invoking
\fBudevadm control \-\-ping\fR
before
\fBudevadm trigger\fR\&.
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
Print a short help text and exit\&.
.RE
.PP
In addition, optional positional arguments can be used to specify device names or sys paths\&. They must start with
/dev/
or
/sys/
respectively\&.
.SS "udevadm settle [\fIoptions\fR]"
.PP
Watches the udev event queue, and exits if all current events are handled\&.
.PP
\fB\-t\fR, \fB\-\-timeout=\fR\fB\fISECONDS\fR\fR
.RS 4
Maximum number of seconds to wait for the event queue to become empty\&. The default value is 120 seconds\&. A value of 0 will check if the queue is empty and always return immediately\&. A non\-zero value will return an exit code of 0 if queue became empty before timeout was reached, non\-zero otherwise\&.
.RE
.PP
\fB\-E\fR, \fB\-\-exit\-if\-exists=\fR\fB\fIFILE\fR\fR
.RS 4
Stop waiting if file exists\&.
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
Print a short help text and exit\&.
.RE
.PP
See
\fBsystemd-udev-settle.service\fR(8)
for more information\&.
.SS "udevadm control \fIoption\fR"
.PP
Modify the internal state of the running udev daemon\&.
.PP
\fB\-e\fR, \fB\-\-exit\fR
.RS 4
Signal and wait for systemd\-udevd to exit\&. No option except for
\fB\-\-timeout\fR
can be specified after this option\&. Note that
systemd\-udevd\&.service
contains
\fBRestart=always\fR
and so as a result, this option restarts systemd\-udevd\&. If you want to stop
systemd\-udevd\&.service, please use the following:
.sp
.if n \{\
.RS 4
.\}
.nf
systemctl stop systemd\-udevd\-control\&.socket systemd\-udevd\-kernel\&.socket systemd\-udevd\&.service
.fi
.if n \{\
.RE
.\}
.sp
.RE
.PP
\fB\-l\fR, \fB\-\-log\-level=\fR\fB\fIvalue\fR\fR
.RS 4
Set the internal log level of
systemd\-udevd\&. Valid values are the numerical syslog priorities or their textual representations:
\fBemerg\fR,
\fBalert\fR,
\fBcrit\fR,
\fBerr\fR,
\fBwarning\fR,
\fBnotice\fR,
\fBinfo\fR, and
\fBdebug\fR\&.
.RE
.PP
\fB\-s\fR, \fB\-\-stop\-exec\-queue\fR
.RS 4
Signal systemd\-udevd to stop executing new events\&. Incoming events will be queued\&.
.RE
.PP
\fB\-S\fR, \fB\-\-start\-exec\-queue\fR
.RS 4
Signal systemd\-udevd to enable the execution of events\&.
.RE
.PP
\fB\-R\fR, \fB\-\-reload\fR
.RS 4
Signal systemd\-udevd to reload the rules files and other databases like the kernel module index\&. Reloading rules and databases does not apply any changes to already existing devices; the new configuration will only be applied to new events\&.
.RE
.PP
\fB\-p\fR, \fB\-\-property=\fR\fB\fIKEY\fR\fR\fB=\fR\fB\fIvalue\fR\fR
.RS 4
Set a global property for all events\&.
.RE
.PP
\fB\-m\fR, \fB\-\-children\-max=\fR\fIvalue\fR
.RS 4
Set the maximum number of events, systemd\-udevd will handle at the same time\&.
.RE
.PP
\fB\-\-ping\fR
.RS 4
Send a ping message to systemd\-udevd and wait for the reply\&. This may be useful to check that systemd\-udevd daemon is running\&.
.RE
.PP
\fB\-t\fR, \fB\-\-timeout=\fR\fIseconds\fR
.RS 4
The maximum number of seconds to wait for a reply from systemd\-udevd\&.
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
Print a short help text and exit\&.
.RE
.SS "udevadm monitor [\fIoptions\fR]"
.PP
Listens to the kernel uevents and events sent out by a udev rule and prints the devpath of the event to the console\&. It can be used to analyze the event timing, by comparing the timestamps of the kernel uevent and the udev event\&.
.PP
\fB\-k\fR, \fB\-\-kernel\fR
.RS 4
Print the kernel uevents\&.
.RE
.PP
\fB\-u\fR, \fB\-\-udev\fR
.RS 4
Print the udev event after the rule processing\&.
.RE
.PP
\fB\-p\fR, \fB\-\-property\fR
.RS 4
Also print the properties of the event\&.
.RE
.PP
\fB\-s\fR, \fB\-\-subsystem\-match=\fR\fB\fIstring[/string]\fR\fR
.RS 4
Filter kernel uevents and udev events by subsystem[/devtype]\&. Only events with a matching subsystem value will pass\&. When this option is specified more than once, then each matching result is ORed, that is, all devices in the specified subsystems are monitored\&.
.RE
.PP
\fB\-t\fR, \fB\-\-tag\-match=\fR\fB\fIstring\fR\fR
.RS 4
Filter udev events by tag\&. Only udev events with a given tag attached will pass\&. When this option is specified more than once, then each matching result is ORed, that is, devices which have one of the specified tags are monitored\&.
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
Print a short help text and exit\&.
.RE
.SS "udevadm test [\fIoptions\fR] [\fIdevpath\fR]"
.PP
Simulate a udev event run for the given device, and print debug output\&.
.PP
\fB\-a\fR, \fB\-\-action=\fR\fB\fIACTION\fR\fR
.RS 4
Type of event to be simulated\&. Possible actions are
"add",
"remove",
"change",
"move",
"online",
"offline",
"bind", and
"unbind"\&. Also, the special value
"help"
can be used to list the possible actions\&. The default value is
"add"\&.
.RE
.PP
\fB\-N\fR, \fB\-\-resolve\-names=\fR\fB\fBearly\fR\fR\fB|\fR\fB\fBlate\fR\fR\fB|\fR\fB\fBnever\fR\fR
.RS 4
Specify when udevadm should resolve names of users and groups\&. When set to
\fBearly\fR
(the default), names will be resolved when the rules are parsed\&. When set to
\fBlate\fR, names will be resolved for every event\&. When set to
\fBnever\fR, names will never be resolved and all devices will be owned by root\&.
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
Print a short help text and exit\&.
.RE
.SS "udevadm test\-builtin [\fIoptions\fR] [\fIcommand\fR] [\fIdevpath\fR]"
.PP
Run a built\-in command
\fICOMMAND\fR
for device
\fIDEVPATH\fR, and print debug output\&.
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
Print a short help text and exit\&.
.RE
.SH "SEE ALSO"
.PP
\fBudev\fR(7),
\fBsystemd-udevd.service\fR(8)
